ROSETTA: The Compile-Time Recognition Of Object-Oriented Library Abstractions And Their Use Within Applications
نویسنده
چکیده
ABSTRACT Obje t-oriented libraries arise naturally from the in reasing omplexity of developing related s ienti appli ations. The optimization of the use of libraries within s ienti appli ations is one of many high-performan e optimizations, and is the subje t of this paper. This type of optimization an have signi ant potential be ause it an either redu e the overhead of alls to a library, spe ialize the library alls given the ontext of their use within the appli ation, or use the semanti s of the library alls to lo ally rewrite se tions of the appli ation. This type of optimization is only now be oming an a tive area of resear h. The optimization of the use of libraries within s ienti appli ations is parti ularly attra tive be ause it maps to the extensive use of libraries within numerous large existing s ienti appli ations sharing ommon problem domains. This paper presents an obje t-oriented library, ROSETTA, as a me hanism to determine where within an appli ation a sour e-to-sour e prepro essor an introdu e performan e optimizations. ROSE[1℄ is a tool for building sour e-to-sour e prepro essors, ROSETTA is a tool for de ning the grammars used within ROSE. The de nition of the grammars dire tly determines what an be re ognized at ompile time. ROSETTA permits grammars to be automati ally generated whi h are spe i to the identi ation of abstra tions introdu ed within obje t-oriented libraries. Thus the semanti s of omplex abstra tions de ned outside of the C++ language an be leveraged at ompile time to introdu e library spe i optimizations. The details of the optimizations performed are not a part of this paper and are up to the library developer to de ne using ROSETTA and ROSE to build su h an optimizing prepro essor. Within performan e optimizations, if This work was performed under the auspi es of the U.S. Department of Energy by University of California Lawren e Livermore National Laboratory under ontra t No. W-7405Eng-48. they are to be automated, the problems of automati ally loating where su h optimizations an be done are signi ant and most often overlooked. Note that a novel part of this work is the degree of automation. Thus library developers an be expe ted to be able to build their own spe ialized ompilers with a minimal ompiler ba kground. The resulting ompilers don't extend the C++ language, but only extend the ompiler's ability to re ognize and leverage the use of user-de ned library abstra tions within an appli ation to perform optimizations. For ompleteness, an example optimizing prepro essor for an array lass library is in luded to demonstrate the omplete use of ROSETTA and ROSE to build an optimizing prepro essor. To demonstrate the overall te hnique we in lude some performan e results showing the e e tive optimization of an appli ation using a prepro essor built from the output of ROSETTA and using a transformation spe i to an array lass library. These results ombine the use of the re ognition te hniques presented in this paper with those of a prepro essor-based transformation approa h. The spe i ation of transformations and the details of the onstru tion of full prepro essors is outside the s ope of this short paper, however the details of the ompiler infrastru ture we are using an be found in ROSE [1℄.
منابع مشابه
Treating a User-Defined Parallel Library as a Domain-Specific Language
The software crisis within scientific computing has been that application codes become larger and more complex. The only conceivable solution is to make application codes smaller and less complex. We know of no way to resolve this crisis, except to make each line of code mean more; this is the process of defining high-level abstractions. Achieving high-performance from high-level abstractions r...
متن کاملClassification and Utilization of Abstractions for Optimization
We define a novel approach for optimizing the use of libraries within applications. We propose that library-defined abstractions be annotated with additional semantics to support their automated optimization. By leveraging these additional semantics we enable specialized optimizations of application codes which use library abstractions. We believe that such an approach entails the use of formal...
متن کاملThe Specification of Source-to-Source Transformations for the Compile-Time Optimization of Parallel Object-Oriented Scientific Applications
The performance of object-oriented applications in scientific computing often suffers from the inefficient use of high-level abstractions provided by underlying libraries. Since these library abstractions are user-defined and not part of the programming language itself there is no compiler mechanism to respect their semantics and thus to perform appropriate optimizations. In this paper we outli...
متن کاملDeclarative Semantics in Object-Oriented Software Development - A Taxonomy and Survey
One of the modern paradigms to develop an application is object oriented analysis and design. In this paradigm, there are several objects and each object plays some specific roles in applications. In an application, we must distinguish between procedural semantics and declarative semantics for their implementation in a specific programming language. For the procedural semantics, we can write a ...
متن کاملAlgorithm-oriented Generic Libraries
We outline an approach to construction of software libraries in which generic algorithms algorithmic abstractions play a more central role than in con ventional software library technology or in the object oriented programming paradigm Our approach is to consider algorithms rst decide what types and access operations they need for e cient execution and regard the types and operations as formal ...
متن کامل